package com.weilai.mapper;

import com.weilai.bean.model.SysMenu;

import java.util.List;

public interface SysMenuMapper {
    int deleteByPrimaryKey(Integer menuId);

    int insert(SysMenu record);

    int insertSelective(SysMenu record);

    SysMenu selectByPrimaryKey(Integer menuId);

    int updateByPrimaryKeySelective(SysMenu record);

    int updateByPrimaryKey(SysMenu record);

    /**
     * 根据用户ID查询菜单
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
    public List<SysMenu> selectMenusByUserId(Long userId);

    /**
     * 根据用户ID查询权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    public List<String> selectPermsByUserId(Long userId);

    /**
     * 根据角色ID查询菜单
     *
     * @param roleId 角色ID
     * @return 菜单列表
     */
    public List<String> selectMenuTree(Long roleId);

    /**
     * 查询系统菜单列表
     *
     * @param SysMenu 菜单信息
     * @return 菜单列表
     */
    public List<SysMenu> selectMenuList(SysMenu SysMenu);

    /**
     * 查询系统所有菜单
     *
     * @return 菜单列表
     */
    public List<SysMenu> selectMenuAll();

    /**
     * 删除菜单管理信息
     *
     * @param menuId 菜单ID
     * @return 结果
     */
    public int deleteMenuById(Long menuId);

    /**
     * 根据菜单ID查询信息
     *
     * @param menuId 菜单ID
     * @return 菜单信息
     */
    public SysMenu selectMenuById(Long menuId);

    /**
     * 查询菜单数量
     *
     * @param parentId 菜单父ID
     * @return 结果
     */
    public int selectCountMenuByParentId(Long parentId);

    /**
     * 新增菜单信息
     *
     * @param SysMenu 菜单信息
     * @return 结果
     */
    public int insertMenu(SysMenu SysMenu);

    /**
     * 修改菜单信息
     *
     * @param SysMenu 菜单信息
     * @return 结果
     */
    public int updateMenu(SysMenu SysMenu);

    /**
     * 校验菜单名称是否唯一
     *
     * @param menuName 菜单名称
     * @return 结果
     */
    public SysMenu checkMenuNameUnique(String menuName);

}